Systems Thinking is a powerful means of explicating, sharing, challenging, and updating mental models about how the world works. By prompting both analysis and synthesis of system variables and effects, systems thinking helps to challenge cognitive biases, expose deeply-held assumptions, stimulate new ideas about alternative models, and inspire imaginative thinking about indicators of systemic change. In other words, systems thinking augments all stages of critical thinking, whether you are baselining how the system works, trying to detect changes in a system, or identifying alternative views of the system itself.
|
Find an example
|
Learn more
|
Create a new model
|
What is LOOPY?LOOPY is a simple yet elegant tool for the rapid application of systems thinking. It is designed to provide a quick and easy way to externalize mental models and simulate system dynamics, using open-source JavaScript libraries. Many thanks to Nicky Case, who created the original application, upon which LOOPY is based. |
When Should I Use LOOPY?LOOPY is useful for problems that involve multiple, interacting variables. Use LOOPY to:
|
Why Should I Use LOOPY?LOOPY helps us to think more critically by providing tools to examine and share mental models. Mental models are a central part of human understanding and reasoning, and the effects of unexamined mental models can be disastrous. LOOPY helps us create, simulate, update, and share more effectively. |
©2024 The MITRE Corporation. ALL RIGHTS RESERVED. Approved for Public Release; Distribution Unlimited. Public Release Case Number 21-1965. The software is provided "as is," without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use of other dealings in the software.
| {{ state.probability }}% |
|
To create a model from scratch, click the "Create a new model" button on the landing page or select "New Model" from the Model menu. Several example models are available by clicking "Find an example" on the landing page or by selecting "Examples..." or "Archetypes..." from the Model menu.
LOOPY currently supports three types of models: Causal Loop Diagram (CLD), Bayesian Belief Network (BBN), and Independent Causal Influence Model (ICIM). Each model type lends itself to a different type of problem. CLDs model feedback loops between different types of variables and can simulate system dynamics. BBNs and ICIMs are more appropriate when dealing with uncertainty and probability. ICIMs are simpler cases of BBNs and are more appropriate when data is sparse for producing estimates instead of exact probabilities. More details about the model types can be found in their respective sections.
Drawing and manipulating models is mainly done with the controls in the upper right:
To zoom in or out, use the mouse scroll. To pan left to right, click and hold an empty spot on the canvas and drag it. Note that CTRL-z also performs the undo function.
LOOPY models are saved locally as JSON files. To save a model, simply click the "Save Model" option in the Model menu. The model will save to your Downloads folder (or the default for your web browser). The file name is the name of the model you are working on, which is editable by clicking the info icon in the top middle of the screen, next to the current model name. To load a previously saved model, click the "Load Model" option in the Model menu and navigate to where you model is saved on your hard drive.
LOOPY comes pre-loaded with several simple example models. These models include some explanatory text and are designed to illustrate important modeling concepts. To load an example model, select "Examples..." from the "Model" menu. The "Archetypes" option also contains example models that represent common themes of systems thinking models.
Causal loop diagrams are visual represenations of the causal relationships between different variables. These variables are represented by nodes (circles) and the relationships are represented by edges (lines). The direction and edge type determine the type of relationship between the variables.
Nodes are created by drawing a circle in the drawing area. Each node has several options:
Edges denote relationships between nodes and affect variable dynamics over time in different ways depending on the type of edge. There are four types of edges in CLDs:
In addition to edge type, there are several other parameters associated with edges in CLDs:
While LOOPY can be useful purely as a visualization and brainstorming tool, it also has the ability to simulate CLDs and graph the variable levels over time. To run a CLD, click the play button in the bottom center of the screen. This will bring up a window which contains a time series chart of all the variables for which "Graph Me!" is checked. The graph intentionally omits numbers. This is because variable levels are meant to be relative and do not have units associated with them. Results should be viewed as estimates and are highly sensitive to the input conditions. For more precise system dynamics modeling, COTS software is advised.
A Bayesian Belief Network (BBN) is a visual representation of a probabilistic model. It contains a set of variables or propositions and their causal dependencies, represented as a series of conditional probabilities. Information about one variable is used to calculate the probability of both downstream and upstream variables. BBNs challenge underlying assumptions and can produce unintuitive insights about causality.
Each node in a BBN has a set of conditional probabilities associated with it. To edit these probabilities, select a node and then click the "Probabilities" button in the right panel.
When creating a node, the first step is to define the possible states of the node. Each node has a minimum of two states; a new node has states "State 1" and "State 2" by default. When the probability edit modal is open, the state names are editable text boxes and can be changed accordingly. Clicking the "+ New State" button adds another state, and clicking the x button next to a state name removes it.
After states have been set, the probabilities can be edited. Nodes without parents only have prior probabilities for each of their states. Nodes with parents have conditional probabilities for each combination of parent node states. Each row of the Probability modal refers to the conditional probabilities given the parent node states in the leftmost columns. All rows must sum to 100%. If they don't, you will be unable to save the node. Each row that does not sum to 100% will have an indicator and the option to normalize. Normalizing a row scales the currently entered values proportionally to sum to 100%. Once all rows are valid, the node can be saved.
Once all the conditional probabilities for a model are set, analysis can be performed by entering evidence for one or more nodes, making their state deterministic instead of stochastic. To do this, click the appropriate row of the probability overlay on the node. This will cause all upstream and downstream probabilities to update using Pearl's Belief Propagation algorithm. To remove the evidence, click the currently selected node state again.
Independent Causal Influence Models (ICIM) are simplified Bayesian Belief Networks. One crucial difference is that nodes must be true/false propositions, while they can have many states in full BBNs. While no conditional probability entry is necessary, LOOPY performs the same calculations, translating edge types, edge weight, node prior belief, and node leak percentage into probabilities. This model type should be used when exact conditional probabilities are difficult to obtain, or when rougher estimates are acceptable.
Nodes are drawn the same way as all other loopy models--by using the cursor and drawing a circle while holding down left click. For leaf nodes, the only piece of data necessary is the prior belief of the variable being true. Child nodes do not have prior beliefs, as their probabilities are determined by the parent node prior beliefs, edge types, weights, and leak percentage.
Edges in ICIMs are different from full BBNs, and affect the probability of the child node. There are four edge types:
Weight is a parameter associated with all edge types and increases or decreases the effects specified above.
Evidence can be entered the same way as in BBNs: by clicking the value (true/false) on the probability chart of the node. If evidence has been entered, the value will appear in bold font, and the node will appear either full (if true) or empty (if false). Evidence propogates both upstream and downstream.